package cn.net.asiacom.entity;

import java.math.BigDecimal;

/**
 * 报表期望的实体类
 * 实体类中Invoice和NewInvoice仅在提取信息阶段生效，
 * 最终输出结果依赖的是InvoiceSubset实体类
 */
public class Invoice {
    /**
     * 发票标题
     */
    private String title;
    /**
     * 发票类型
     */
    private String type;

    /**
     * 发票号码
     */
    private String number;

    /**
     * 开票日期
     */
    private String date;

    /**
     * 购买方名称
     */
    private String buyerName;

    /**
     * 购买方纳税人识别号
     */
    private String buyerCode;

    /**
     * 销售方名称
     */
    private String sellerName;

    /**
     * 销售方纳税人识别号
     */
    private String sellerCode;

    /**
     * 合计金额
     */
    private BigDecimal amount;
 
    /**
     * 合计税额
     */
    private BigDecimal taxAmount;

    /**
     * 价税合计大写字符串
     */
    private String totalAmountString;
    /**
     * 价税合计金额
     */
    private BigDecimal totalAmount;
    /**
     * 开票人
     */
    private String drawer;


    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }

    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }

    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }

    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }

    public String getBuyerName() {
        return buyerName;
    }
    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    public String getBuyerCode() {
        return buyerCode;
    }
    public void setBuyerCode(String buyerCode) {
        this.buyerCode = buyerCode;
    }

    public String getSellerName() {
        return sellerName;
    }
    public void setSellerName(String sellerName) {
        this.sellerName = sellerName;
    }

    public String getSellerCode() {
        return sellerCode;
    }
    public void setSellerCode(String sellerCode) {
        this.sellerCode = sellerCode;
    }

    public BigDecimal getAmount() {
        return amount;
    }
    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getTaxAmount() {
        return taxAmount;
    }
    public void setTaxAmount(BigDecimal taxAmount) {
        this.taxAmount = taxAmount;
    }

    public String getTotalAmountString() {
        return totalAmountString;
    }
    public void setTotalAmountString(String totalAmountString) {
        this.totalAmountString = totalAmountString;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }
    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public String getDrawer() {
        return drawer;
    }
    public void setDrawer(String drawer) {
        this.drawer = drawer;
    }

    @Override
    public String toString() {
        return "Invoice{" +
                "title='" + title + '\'' +
                ", type='" + type + '\'' +
                ", number='" + number + '\'' +
                ", date='" + date + '\'' +
                ", buyerName='" + buyerName + '\'' +
                ", buyerCode='" + buyerCode + '\'' +
                ", sellerName='" + sellerName + '\'' +
                ", sellerCode='" + sellerCode + '\'' +
                ", amount=" + amount +
                ", taxAmount=" + taxAmount +
                ", totalAmountString='" + totalAmountString + '\'' +
                ", totalAmount=" + totalAmount +
                ", drawer='" + drawer + '\'' +
                '}';
    }
}